<?php

/**
 * CuerpoHumano form.
 *
 * @package    form
 * @subpackage CuerpoHumano
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
 */
class CuerpoHumanoForm extends BaseCuerpoHumanoForm
{
  protected function initialize()
  {
  	$this->labels = array
  	                (
  	                  'nombre'      => 'Nombre', //label del formulario
  	                  'descripcion' => 'Descripci&oacute;n',
  	                  'estado'      => 'Estado'
  	                );
  }
  	
  public function configure()
  {
  	$this->setWidgets
  	(
  	  array
  	  (
   	    'id'          => new sfWidgetFormInputHidden(),
  	    'nombre'      => new sfWidgetFormInput(),
  	    'descripcion' => new sfWidgetFormTextarea(),
  	    'estado'      => new sfWidgetFormSelect(array('choices' => $this->getObject()->getTable()->getEstado())),
     /* 'parentesco_id'    => new sfWidgetFormDoctrineSelect
                             (
                               array
                               (
                                 'model'     => 'Parentesco', 
                                 'add_empty' => '---NO Se---', 
                                 'order_by'  => array('Nombre', 'desc')
                               )
                             ), 
   */   
  	  )                       
  	);
  	
  	$this->types = array
  	(
      'id'          => '=',  //coge el validador de papa ""BaseCuerpoHumanoForm
      'nombre'      => 'name',  // validadot de nombres
      'descripcion' => 'text',  //validator de texztarea
      'estado'      => array('combo', array('choices' => array_keys($this->getObject()->getTable()->getEstado()))),  
      'slug'        => '-',
      'created_at'  => '-',   // unset al validador 
  	);
  }
  
  public function postConfigure()
  {
    $this->addCuerpoHumanoImagenForm();
  }
  
  public function addCuerpoHumanoImagenForm()
  {
    if ($this->isNew())
    {
      $cuerpoHumanoImagen = new CuerpoHumanoImagen();
      $cuerpoHumanoImagen->setCuerpoHumano($this->getObject());
    }
    else
    {
      if (!$cuerpoHumanoImagen = Doctrine::getTable('CuerpoHumanoImagen')->findOneByCuerpoHumanoId($this->object->getId()))
      {
        $cuerpoHumanoImagen = new CuerpoHumanoImagen();
        $cuerpoHumanoImagen->setCuerpoHumano($this->getObject());
      }
    }
    
    $cuerpoHumanoImagenForm = new CuerpoHumanoImagenBackendForm($cuerpoHumanoImagen);
    $cuerpoHumanoImagenForm->getWidgetSchema()->setNameFormat('cuerpo_humano[cuerpo_humano_imagen][%s]');
    
    $cuerpoHumanoImagenForm->buildLabels();
    $this->embedForm('cuerpo_humano_imagen', $cuerpoHumanoImagenForm);
    $this->widgetSchema->setLabel('cuerpo_humano_imagen', 'Imagen');
  }
  
  public function updateObject($values = null)
  {
    if (is_null($values))
    {
      $values = $this->values;
    }
    
    $values = $this->processValues($values);
    $values = $this->fixValues($values);
    //Deb::print_r($values);
    $this->object->fromArray($values);
    
    $this->updateObjectEmbeddedForms($values);

    return $this->object;
  }
}